﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Capa_Datos;
using System.Data.SqlClient;

namespace Capa_Negocios
{
    public class Laboratorio
    {
        static DataClasses1DataContext Adaptador = new DataClasses1DataContext();

        #region constructor        
        public Laboratorio()
        { }
        #endregion
                
        #region metodos
        static public string insertar(string edi, string nombre_lab, int capacidad, string encargado, string desc)
        {
            try
            {
                Adaptador.InsertarLaboratorio(edi, nombre_lab, Convert.ToByte(capacidad), encargado, desc, true);
                return "Se insertó correctamente";
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                return "No pudo insertarse, se generó el siguiente error: " + ex.Message;
            }
        }

        static public string editar(int id_lab, string edi, string nombre_lab, int capacidad, string encargado, string desc, bool habilitado)
        {
            try
            {
                Adaptador.editarLaboratorio(Convert.ToInt16(id_lab), edi, nombre_lab, Convert.ToByte(capacidad), encargado, desc, habilitado);
                return "Se editó correctamente";
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                return "No pudo editarse, se generó el siguiente error: "+ex.Message;
            }
        }

        static public List<object> filtroNombreLab(string texto)
        {
            var listar = (from l in Adaptador.regresarLaboratorio()
                          where l.NOMBRE_LAB.StartsWith(texto)
                          select new { l.ID_LABORATORIO, l.NOMBRE_LAB, l.CAPACIDAD_LAB, l.ENCARGADO_LAB, l.NOMBRE_EDIFICIO, l.DESCRIPCION_LAB}).ToList<object>();
            return listar;
        }

        static public List<object> filtroEdificio(string texto)
        {
            var listar = (from l in Adaptador.regresarLaboratorio()
                          where l.NOMBRE_EDIFICIO.StartsWith(texto)
                          select new {l.ID_LABORATORIO, l.NOMBRE_LAB, l.CAPACIDAD_LAB, l.ENCARGADO_LAB, l.NOMBRE_EDIFICIO, l.DESCRIPCION_LAB }).ToList<object>();
            return listar;
        }

        static public List<object> listarLabs()
        {
            return Adaptador.regresarLaboratorio().ToList<object>();
        }
        #endregion
    }
}
